1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for initializing a data processing system. Still more particularly, the present invention provides a method, apparatus, and computer instructions for establishing a runtime environment using a firmware image for booting a data processing system.
2. Description of Related Art
Open firmware is a nonproprietary boot firmware that is usable on different types of processors and buses. Boot firmware is the read only memory (ROM) based software that controls a computer from the time that it is turned on until the primary operating system has taken control of the machine. The main function of boot firmware is to initialize the hardware and then to “boot” (load and execute) the primary operating system. Additionally, open firmware also describes the functional topology of a data processing system. At boot-time, open firmware is less constrained by limitations than firmware components, which are invoked by an operating system after the boot stage.
Runtime firmware is required to be sensitive to the amount of memory and which memory can be accessed because runtime firmware can not assume that it has control of the entire system. Likewise, the functionality demanded from runtime firmware is a subset of that required at boot-time or initialization. The runtime firmware only needs to describe, but does not need to operate new devices added after boot or initialization of the data processing system.
IEEE 1275-1994 Open Firmware specification describes a firmware, which is incompatible with runtime requirement. For example, on servers with large configurations, such as ones with more than 100 PCI devices, the amount of memory required to represent device tree devices and methods may be large. The memory may, in some cases, take up 10 or more megabytes. For this reason, data processing systems only use open firmware at boot-time and use a different firmware after the operating system has been booted because of the memory requirements and usage by open firmware. The use of different firmware after booting of the operating system requires processes to be coded a second time for the runtime firmware. Such a system can be time consuming. First, open firmware is typically coded in a computer language called Forth, while runtime firmware is often coded using C. These two languages also have different structures. As a result, in addition to having to generate code in a different language, debugging of the runtime firmware also is required.
Therefore, it would be advantageous to have a method, apparatus, and computer instructions for establishing a runtime open firmware environment using open firmware design for initializing a data processing system.